<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 数组的拓展方法
    // (1) 官方提供的专门操作数组的方法 
    // (2) 一般情况下仅数组可用

    // 语法:
    // 数组.方法名(参数);

    // 学习数组的拓展方法需要注意:
    // (1) 每个方法的功能(做什么事)
    // (2) 调用方法后的返回值(有什么结果)
    // (3) 是否影响原数组



    // 对数组中的元素进行增删改查

    // 尾部新增和头部新增
    // push()  在数组尾部新增一个或多个元素(多个元素之间用逗号分隔)
    // 返回值: 新增元素后数组的长度
    // 是否影响原数组:  是

    // var list = [1, 2, 3];
    // // var result = list.push("a");
    // var result = list.push("a","b","c");
    // console.log(result);
    // console.log(list);


    // unshift()  在数组头部新增一个或多个元素(多个元素之间用逗号分隔)
    // 返回值: 新增元素后数组的长度
    // 是否影响原数组:  是

    // var list = [1, 2, 3];
    // var result = list.unshift("a"); // 4
    // console.log(result);
    // console.log(list);

    // var list = [1, 2, 3];
    // var result = list.unshift("a","b","c"); // 6
    // console.log(result);
    // console.log(list);

    // 尾部删除和头部删除
    // pop()   删除数组尾部的元素 (每次删除一个)
    // 返回值:  被删除的元素
    // 是否影响原数组: 是

    // var list = [1, 4, 7, 2, 5, 8 ,"a","b"];
    // var result = list.pop();
    // console.log(result);
    // console.log(list);

    // var result = list.pop();
    // console.log(result);
    // console.log(list);


    // shift()   删除数组头部的元素(每次删除一个)
    // 返回值:  被删除的元素
    // 是否影响原数组: 是

    // var list = [1, 4, 7, 2, 5, 8 ,"a"];
    // var result = list.shift();
    // console.log(result);
    // console.log(list);


    // splice()  任意位置增删改

    // splice(startIndex,n)  删除 => 自指定下标位置(startIndex)开始,删除n个元素
    // 返回值:  被删除的元素形成的新数组
    // 是否影响原数组: 是

    // var list = [1, 4, 7, 3, 6, 9, 2, 5, 8];
    // var result = list.splice(3,3);
    // console.log(result);
    // console.log(list);

    // splice(startIndex,0,arg1,arg2,...argN)  新增 => 自指定下标位置(startIndex)开始,删除0个元素后,新增一个或多个元素(自第三参数开始都是新增的元素)
    // 返回值: 被删除的元素形成的新数组 =>  空数组(没有被删除的元素) 
    // 是否影响原数组: 是

    // var list = [1, 4, 7, 3, 6, 9, 2, 5, 8];
    // var result = list.splice(3, 0, "a", "b", "c");
    // console.log(result);
    // console.log(list);

    // splice(startIndex,n,arg1,arg2,...argN)  修改 => 自指定下标位置(startIndex)开始,先删除n个元素后,再新增一个或多个元素(自第三参数开始都是新增的元素)
    // 返回值: 被删除的元素形成的新数组 =>  空数组(没有被删除的元素) 
    // 是否影响原数组: 是

    // var list = [1, 4, 7, 3, 6, 9, 2, 5, 8];
    // var result = list.splice(3, 3, "a", "b", "c");
    // console.log(result);
    // console.log(list);

    // 查
    // includes()  判断数组中是否存在某个元素
    // 返回值: 存在就返回true 不存在就返回false
    // 是否影响原数组: 否


    // var list = [1, 4, 7, 3, 6, 9, 2, 5, 8];
    // var result = list.includes(6);
    // console.log(result);
    // console.log(list);


    // indexOf()   查找某个元素在数组中第一次出现的位置
    // 返回值: 存在就返回下标 不存在就返回-1
    // 是否影响原数组: 否

    // 注意: 
    // indexOf()  也可以用于判断数组中是否存在某个元素
    // 存在  index != -1 或 index >= 0
    // 不存在 index == -1

    var list = [1, 4, 6, 7, 3, 6, 9, 2, 5, 8];
    var result = list.indexOf(6);
    console.log(result);
    console.log(list);

    var result = list.indexOf("6");
    console.log(result);
    console.log(list);





















</script>

</html>